package com.cxh.service;

import com.cxh.base.BaseService;
import com.cxh.entity.SoundQu;

import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 类说明：
 * @author  ChenXH
 * @date  2019-01-04 16:06:48
 */
@Service("soundQuService")
public interface SoundQuService extends BaseService<SoundQu> {

	/**
	 * 根据机构Id获得基础问答列表
	 * @param orgId 机构Id
	 * @return
	 */
	List<SoundQu> loadAllByOrg(Integer orgId);
	
	/**
	 * 根据Id获得单条信息
	 * @param id
	 * @return
	 */
	SoundQu findById(Integer id);
	
	/**
	 * 根据单位Id获得单位下形相应的基础问答数据
	 * @param orgId 单位id
	 * @param pageNumber 当前页码
	 * @param pageSize 每页数据条数
	 * @return
	 */
	List<Map<String,Object>> loadSoundQuByOrg(Integer orgId,int pageNumber,int pageSize);
	
	/**
	 * 根据单位名称获得单位下的基础问答条数
	 * @param orgId
	 * @return
	 */
	int findCountByOrg(Integer orgId);
	
	int findCountByUser(Integer userId);
	
	/**
	 * 验证本机构下是否存在相同问题
	 * @param map
	 * @return
	 */
	List<SoundQu> checkQuest(Map<String,Object> map);
	/**
	 * 获得机器人下的问答库
	 * @param code 机器人编码
	 * @return
	 */
	List<SoundQu> loadByCode(String code);
	
	/**
	 * 根据用户Id获得用户下所有机器人拥有的基础问答
	 * @param orgId
	 * @param pageNumber
	 * @param pageSize
	 * @return
	 */
	List<Map<String,Object>> loadSoundQuByUser(Integer userId,int pageNumber,int pageSize);
	
	/**
	 * 根据用户Id以及基础问答与答案关联获得机器人列表
	 * @param userId
	 * @param id
	 * @return
	 */
	List<Map<String,Object>> loadRobotByUserAndQuestion(Integer userId,Integer id);
	/**
	 *根据问题Id获得可以回答此问题的机器人Id里诶表
	 * @param questionId
	 * @return
	 */
	List<Integer> findRobotByQuestion(Integer userId,Integer id);
	
	/**
	 * 根据用户Id获得用户基础问答列表
	 * @param userId
	 * @return
	 */
	List<Map<String,Object>> findQuestionsByUser(Integer userId,int pageNumber,int pageSize);
	
	/**
	 * 根据问题与答案关联Id获得问题详情
	 * @param userId
	 * @return
	 */
	public List<Map<String,Object>> findQquestionByAnId(Integer userId);
	/**
	 * 根据问题标题获得问题对象
	 * @param title 问题标题
	 * @return
	 */
	SoundQu findQuestionIdByTitle(String title);
	/**
	 * 倒叙查询指定条数的未同步数据（仅仅为数据迁移提供服务）
	 * @param countRow 数据条数
	 * @return
	 */
	List<Map<String,Object>> selectListBySynchronize(int countRow);


	/**
	 * @describe 根据单位ID，获取基础问答
	 * @author Y
	 * @date 2018年11月20日
	 * @param orgId
	 * @return
	 */
	String findSoundQuAnAnswerByOrgId(int orgId, String question);
	
	

}
